package com.learn.servloader;

import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.config.ServiceLocatorFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 这种方式可以理解为 策略模式，但是也有点像工厂模式，看 {@link com.learn.servloader.switches.ParseClient};
 * <p>
 * 这个是 Spring 框架提供的功能
 */
@Configuration
public class ParserConfig {

    // 需要配置服务定位的bean到容器中
    @Bean("parserFactory")
    public FactoryBean serviceLocatorFactoryBean() {
        ServiceLocatorFactoryBean factoryBean = new ServiceLocatorFactoryBean();
        // 设置服务定位接口
        factoryBean.setServiceLocatorInterface(ParserFactory.class);
        return factoryBean;
    }

}